const connection = require("../../config/mysql");

/**
 * addUserLog
 * 添加用户行为日志
 * @param {number} userid 用户id
 * @param {string} behavior 行为
 * @param {string} type 类型

 * 
 * @ 11- 新建文件夹
 * @ 12- 删除文件夹
 * 
 * @returns {Promise<void>}
 */
const addUserLog = async (userid, behavior, type) => {
    // 使用参数化查询，避免SQL注入和引号问题
    if (type) {
        await connection.query(
            'INSERT INTO user_log (userid, behavior, type) VALUES (?, ?, ?)',
            [userid, behavior, type]
        );
    } else {
        await connection.query(
            'INSERT INTO user_log (userid, behavior) VALUES (?, ?)',
            [userid, behavior]
        );
    }
}

module.exports = {
    addUserLog
}
// 1	用户操作	    登录	        login	                用户登录系统。
// 2	用户操作	    注销	        logout	                用户退出系统。
// 3	用户操作	    注册	        register	            用户注册系统。
// 4	用户操作	    修改密码	    changePassword	        用户修改了登录密码。
// 5	用户操作	    修改信息	    changeInfo	            用户修改了个人信息。
// 6	用户操作	    删除用户	    deleteUser	            管理员删除了一个用户。
// 7	用户操作	    添加用户	    addUser	                管理员添加了一个新用户。
// 8	用户操作	    重置密码	    resetPassword	        管理员重置了用户的登录密码。
// 9	用户操作	    修改权限	    changePermission	    管理员修改了用户的权限。

// 11	文件夹操作	    创建文件夹	    createFolder	        用户创建了一个新文件夹。
// 12	文件夹操作	    删除文件夹	    deleteFolder	        用户删除了一个文件夹（含其子内容）。这是逻辑删除。
// 13	文件夹操作	    重命名文件夹	renameFolder	        用户修改了文件夹的名称。
// 14	文件夹操作	    移动文件夹	    moveFolder	            用户将一个文件夹移动到了另一个父目录下。

// 21	文件操作	    上传文件	    uploadFile	            用户上传了一个或多个文件到系统。
// 22	文件操作	    删除文件	    deleteFile	            用户删除了一个或多个文件。这是逻辑删除。
// 23	文件操作	    重命名文件	    renameFile	            用户修改了文件的名称。
// 24	文件操作	    移动文件	    moveFile	            用户将一个或多个文件移动到了另一个文件夹。
// 25	文件操作	    下载文件	    downloadFile	        用户下载了一个或多个文件。